# 定义类

class Student():
    # 初始化函数,相当于构造函数
    # self 相当于java中的this
    def __init__(self, id: str, name: str, age: int, gender: str, clazz: str = "一班"):
        print("初始化")
        # 给成员变量赋值, 赋值及定义
        self.id = id
        # 成员变量的私有化，不能再外面访问
        self.__name = name
        self.age = age
        self.gender = gender
        self.clazz = clazz

    # 普通方法
    def print(self):
        # 再类的内部调用私有化方法
        str = self.__mk_str()

        print(str)

    # 方法私有化
    def __mk_str(self):
        # python中字符串拼接
        str = "%s\t%s\t%d\t%s\t%s" % (self.id, self.__name, self.age, self.gender, self.clazz)
        return str

    # 创建类的对象


student1 = Student("001", "张三", 23, "男", "一班")

# 调用对象的方法
student1.print()

# 修改属性的值
student1.age = 24

student1.print()

# 获取属性的值
print(student1.age)

student2 = Student("002", "李四", 22, "男")
student2.print()
